🕸️ Ada Research Browser

README.md
← Back

CMMC Artifact Tracker

A self-hosted, open-source compliance tracking tool for CMMC Level 2 (NIST 800-171 Rev 2) assessments. Track all 14 control families, 110 security requirements, and 320 assessment objectives with full artifact management, team assignments, and assessment reporting.

Built for security teams, IT managers, and compliance officers preparing for CMMC certification.

Python Flask License Docker


Screenshots

Dashboard

Dashboard showing family progress bars, completion stats, and charts Track progress across all 14 NIST 800-171 control families with visual charts and status breakdowns.

Family Detail

Family detail page with collapsible requirements and artifact uploads Drill into any family to manage objectives, upload evidence, assign team members, and track status.

Evidence Library

Evidence library showing all artifacts with linking capability Central evidence library lets you link one artifact to multiple objectives.

POA&M Generator

POA&M page with risk levels and remediation plans Auto-generated Plan of Action & Milestones with inline editing for risk, remediation, and milestones.

Assessment Report

Printable assessment report Generate print-ready assessment reports covering all objectives, artifacts, and POA&M items.


Why This Exists

CMMC Level 2 certification requires organizations to demonstrate compliance with 320 assessment objectives across 14 control families. Most teams track this in spreadsheets, which quickly becomes unmanageable. Commercial GRC tools cost $15,000-50,000+/year and are overkill for small-to-mid defense contractors.

This tool gives you everything you need to manage your CMMC assessment for free.


Features

Core Tracking

Artifact Management

Evidence Mapping

Team Collaboration

Assessment Deliverables

User Experience

Security

See SECURITY.md for full details.


Quick Start

git clone https://github.com/jonathancaruso/cmmc-tracker.git
cd cmmc-tracker
docker compose up -d

Open http://localhost:3300 -- you'll be prompted to create your admin account on first visit.

Data persists in a Docker volume. To back up:

docker compose cp cmmc-tracker:/data ./backup

Local Python

git clone https://github.com/jonathancaruso/cmmc-tracker.git
cd cmmc-tracker
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py

Open http://localhost:3300

The database auto-seeds all 320 objectives from nist-800-171a.xlsx on first run.


Environment Variables

Variable Default Description
FLASK_SECRET Random (regenerated on restart) Session secret key. Set this in production.
FLASK_ENV development Set to production for secure cookies + HSTS
DB_PATH ./cmmc.db Path to SQLite database
UPLOAD_PATH ./uploads Path to artifact storage
FLASK_DEBUG 1 Set to 0 in production

Usage

  1. First Visit -- create your admin account (16-char password with complexity requirements)
  2. Add Users -- Admin > Users to create accounts for your team
  3. Add Domains/Assets -- Config page to define your AD domains or asset categories
  4. Browse Families -- click any family card on the dashboard
  5. Assign Objectives -- assign team members to collect evidence
  6. Upload Artifacts -- attach evidence files, they auto-rename to CMMC format
  7. Link Evidence -- link shared artifacts across multiple objectives
  8. Track Progress -- dashboard shows real-time completion by family
  9. Generate POA&M -- document remediation plans for incomplete objectives
  10. Export Report -- print assessment report or export CSV

Data Files

File Description
nist-800-171a.xlsx SP 800-171A assessment objectives (source data for all 320 objectives)
nist-800-171.xlsx SP 800-171 security requirements with discussion text
ArtifactHash.ps1 Official CMMC v1.11 PowerShell hashing script (DoD CIO format)

Artifact Hashing

The built-in hashing tool generates two files: - CMMCAssessmentArtifacts.log -- SHA-256 hash of every uploaded file - CMMCAssessmentLogHash.log -- SHA-256 hash of the log itself

These match the format required by eMASS for CMMC assessments.


Tech Stack


Contributing

Contributions welcome. Please:

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes
  4. Test that python app.py starts without errors
  5. Submit a PR

License

MIT License. See LICENSE for details.


Disclaimer

This tool assists with CMMC assessment preparation. It does not guarantee compliance or certification. Consult with a certified CMMC assessor (C3PAO) for official assessment guidance.